﻿# hello world.py


# 程序中出现的所有值都是对象
# 对象由内部数据和各种方法组成
# 如:

items = [1,2]   #创建了一个列表对象
items.append(37)#这个对象调用了append() 方法

print dir(items) # 这个可以列出所有的对象方法

# class Stack(object) 将Stack声明为一个object
# 使用 小括号是 Python 指定继承的方式
class Stack(object):
	# 每个方法中的第一个参数始终指向对象本身
	# 根据约定，该参数的名称为 self
	def __init__(self):             # 初始化栈（构造方法）
		self.stack = []
	def push(self,object):          
		self.stack.append(object)
	def pop(self):
		return self.stack.pop()
	def length(self):
		return len(self.stack)
	@staticmethod 
	def display():      # 静态的方法
		return "This is static method"

S = Stack()      # 创建一个栈
S.push("Dave")	 # 入站
S.push(42)
S.push([1,2,3])

print Stack.display()

print S.pop()	 # 出栈
print S.pop()
print S.pop()
del S			 # 删除一个栈


# 列表已经提供了 pop() 接口
#lists = [1,2,3]
#print lists.pop()
#print lists.pop()

class Stack(list):    
	# 列表已经提供了 pop() 接口
	# 为栈接口添加push()方法
	def push(self,object):
		self.append(object)


a = Stack()
a.push("1")
a.push("2")
a.push("3")
a.push("4")

print a.pop()
print a.pop()
print a.pop()











